


import apis from '../../http/apis/apis';
export default {
    namespaced: true,
    // 等同于组件的data
    state: {
        tableData: [],
        pageSize: 10, //每页显示的条数
        currentPage: 1, //当前页数
        total: 0, //总条数
        pages: 0,
        num: 0,//通过转态值来判断是渲染还是搜索
    },
    // 等同于组件中的computed
    getters: {
    },
    // 等同于组件中的methods，用于定义修改state的方法
    // 也是修改state的唯一方法，就是通过mutations
    mutations: {
        //mutations中定义的所有方法，第一参数接受的都是state对象
        changeTableData(state, data) {
            state.tableData = data.data.data
            state.pages = data.data.pages,//总页数
                state.total = data.data.total,
                state.num = data.num

        },
        changePageSize(state, pageSize) {
            state.pageSize = pageSize
        },
        changeCurrentPage(state, currentPage) {
            state.currentPage = currentPage
        },
        // 搜索改变数组
        changeData(state, data) {
            state.tableData = data.data.data;
            state.pages = data.data.pages,//总页数
                state.total = data.data.total,
                state.num = data.num
        }
    },
    // 用于定义异步方法
    actions: {
        //actions中定义的所有方法，第一参数接受的都是context        
        // 如果想要通过actions的方法去修改state，只能在actives中先调用mutations的方法
        // 1、actives调用mutations，是通过context.commit()
        // 2、actives调用actives，是通过context.dispatch()
        // 发送axios
        async getLogs(context) {
            const { data } = await apis.logs.getLogs(
                {
                    pageSize: context.state.pageSize, //每页显示的条数
                    currentPage: context.state.currentPage, //当前页数
                    total: context.state.total, //总条数
                    pages: context.state.pages
                },
            );
            // console.log(data);
            // 将data的值赋给数组
            context.commit('changeTableData', data)
        },
        // 删除日志信息
        async deleteLogs(context, _id) {
            const { data } = await apis.logs.deleteLogs(_id);
            if (data.status) {
                alert("删除成功");
                context.dispatch('getLogs')
            } else {
                alert('删除失败')
            }
        },
        // 根据用户来搜索
        async seekLogsUser(context, user) {
            const { data } = await apis.logs.seekLogsUser({
                username: user,
                pageSize: context.state.pageSize, //每页显示的条数
                currentPage: context.state.currentPage, //当前页数
                total: context.state.total, //总条数
                pages: context.state.pages
            });
            if (data.status) {
                context.commit('changeData', data)
            }
        },
        // 根据传入执行结果来搜索
        async seekLogsResult(context, user) {
            const { data } = await apis.logs.seekLogsResult({
                result: user,
                pageSize: context.state.pageSize, //每页显示的条数
                currentPage: context.state.currentPage, //当前页数
                total: context.state.total, //总条数
                pages: context.state.pages
            });
            if (data.status) {
                context.commit('changeData', data)
            }
        },
        // 根据传入执行操作来搜索
        async seekLogsHandle(context, user) {
            const { data } = await apis.logs.seekLogsHandle({
                handleType: user,
                pageSize: context.state.pageSize, //每页显示的条数
                currentPage: context.state.currentPage, //当前页数
                total: context.state.total, //总条数
                pages: context.state.pages
            });
            if (data.status) {
                context.commit('changeData', data)
            }
        },
        // 根据传入执行时间来搜索
        async seekLogsTime(context, user) {
            const d = new Date(user);
            const datetime = d.getFullYear() + '/' + (d.getMonth() + 1) + '/' + d.getDate();
            const { data } = await apis.logs.seekLogsTime({
                handleTime: datetime,
                pageSize: context.state.pageSize, //每页显示的条数
                currentPage: context.state.currentPage, //当前页数
                total: context.state.total, //总条数
                pages: context.state.pages
            });
            if (data.status) {
                context.commit('changeData', data)
            }
        },
    },

}